package ar.edu.siglo21.taller.algoritmo.model;

import ar.edu.siglo21.taller.algoritmo.exception.MyException;
import ar.edu.siglo21.taller.algoritmo.utils.ValidarDatos;

public abstract class Persona {

	/**
	 * @param args
	 */

	private String apellido;
	private String nombre;
	private int dni;
	private String email;
	
	public Persona() {
		super();
	}

	public Persona(String apellido, String nombre, int dni, String email) {
		super();
		this.apellido = apellido;
		this.nombre = nombre;
		this.dni = dni;
		this.email = email;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) throws MyException {
		if (ValidarDatos.validarEmail(email)){
			this.email = email;
		}else{
			throw new MyException("Email con formato invalido");
		}
		
	}

	public void setApellido(String apellido) throws MyException {
		if(!ValidarDatos.validarNombre(apellido))
			throw new MyException("El Apellido debe contener letras unincamente");
		this.apellido = apellido;
	}

	public String getApellido() {
		return this.apellido;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) throws MyException {
		if(!ValidarDatos.validarNombre(nombre))
			throw new MyException("El Nombre debe contener letras unincamente");
		this.nombre = nombre;
	}

	public int getDni() {
		return dni;
	}

	public void setDni(int dni) throws MyException {
		if (dni == 0)
			throw new MyException("El DNI no puede ser nulo");
		this.dni = dni;
	}

	@Override
	public String toString() {
		return "Persona [apellido=" + apellido + ", nombre=" + nombre
				+ ", dni=" + dni + "]";
	}

}
